/*
 * 
 * 
 * 
 */
package com.hboxs.asl.service;

import com.hboxs.asl.entity.Cart;
import com.hboxs.asl.entity.CartItem;
import com.hboxs.asl.entity.Product;

import java.math.BigDecimal;

/**
 * Service - 购物车项
 */
public interface CartItemService extends BaseService<CartItem, Long> {

    /**
     * 修改购物车选择标记
     *
     * @param cartItem   购物车
     * @param isSelected 标记
     */
    void changeSelectedStatus(CartItem cartItem, Boolean isSelected);

    /**
     * 生成购物车项
     *
     * @param product   商品
     * @param quantity  数量
     * @param cart      购物车
     * @param dealPrice 成交价
     * @param anchorId 主播id
     */
    void create(Product product, Integer quantity, Cart cart, BigDecimal dealPrice , Long anchorId);

    /**
     * 验证用于生成新订单项的数据
     *
     * @param quantity
     * @param product
     * @param cart
     */
    String validateValues4CartItem(Integer quantity, Product product, Cart cart);

    /**
     * 修改购物项中商品的数量
     *
     * @param cartItem
     * @param quantity
     */
    void add(CartItem cartItem, Integer quantity);


}